package com.hyt.it.ogt.ykcj.domain.exam;

import java.time.LocalDateTime;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.baomidou.mybatisplus.annotation.TableField;
import com.hyt.it.ogt.ykcj.common.annotation.Excel;
import com.hyt.it.ogt.ykcj.common.core.domain.BaseEntity;

import io.swagger.annotations.ApiModelProperty;

/**
 * 考试信息对象 exam_info
 *
 * @author admin
 * @date 2021-06-18
 */
public class ExamInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 序号id
     */
    @ApiModelProperty(value = "ID")
    private String id;

    /**
     * 考试code
     */
    @ApiModelProperty(value = "考试code")
    private String examCode;

    /**
     * 考试名称Id
     */
    @ApiModelProperty(value = "考试名称ID")
    @Excel(name = "考试名称Id")
    private String examNameConfigId;

    /**
     * 考试年份
     */
    @ApiModelProperty(value = "考试年份")
    @Excel(name = "考试年份")
    private String year;

    /**
     * 公务员考试类别Id(当考试类型为公务员时，该属性必填)
     */
    @ApiModelProperty(value = "公务员考试类别Id(当考试类型为公务员时，该属性必填)")
    @Excel(name = "公务员考试类别Id(当考试类型为公务员时，该属性必填)")
    private String civilServantType;

    /**
     * 考试类型(0:专业技术;1:公务员)
     */
    @ApiModelProperty(value = "考试类型(0:专业技术;1:公务员;2:企业招聘;99:其他考试)")
    @Excel(name = "考试类型(0:专业技术;1:公务员;2:企业招聘;99:其他考试)")
    private String examType;

    /**
     * 考试名称Id
     */
    @ApiModelProperty(value = "考试名称ID")
    @Excel(name = "考试频次")
    private String examNumberTimes;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    @Excel(name = "描述")
    private String remarks;

    /**
     * 开考开始日期
     */
    @Excel(name = "开考开始日期")
    private LocalDateTime examStartDay;

    /**
     * 开考结束日期
     */
    @ApiModelProperty(value = "开考结束日期")
    @Excel(name = "examEndDay")
    private LocalDateTime examEndDay;

    /**
     * 状态(0:临时 1:正式)
     */
    @ApiModelProperty(value = "状态(0:临时 1:正式)")
    @Excel(name = "状态(0:临时 1:正式)")
    private String status;

    /**
     * 数据来源：(0：后台操作；1：同步 )
     */
    @ApiModelProperty(value = "数据来源：(0：后台操作；1：同步 )")
    @Excel(name = "数据来源：(0：后台操作；1：同步 )")
    private String origin;

    /**
     * 机构id
     */
    @ApiModelProperty(value = "机构id")
    @Excel(name = "机构id")
    private String officeId;

    /**
     * 部门id
     */
    @ApiModelProperty(value = "部门ID")
    @Excel(name = "部门id")
    private String deptId;

    /**
     * 考试任务id
     */
    @ApiModelProperty(value = "考试任务id")
    @Excel(name = "考试任务id")
    private String taskId;

    /**
     * 考试任务id
     */
    @ApiModelProperty(value = "考试任务id")
    private Long useTime;

    /**
     * 平台绑定状态【0:未绑定;1:已绑定】
     */
    @ApiModelProperty(value = "平台绑定状态【0:未绑定;1:已绑定】")
    @TableField("pt_binding_status")
    private Integer bindingStatus;


    /**
     * 考试形式(0:考试;1:考试组)
     */
    @ApiModelProperty(value = "考试形式(0:考试;1:考试组)")
    private Integer examForm;

    /**
     * 关联考试id
     */
    @ApiModelProperty(value = "关联考试id")
    private String relationId;

    /**
     * 关联考试id
     */
    @ApiModelProperty(value = "合并类型：0：合并考试 1：合并科目")
    private Integer mergeType;

    /**
     * 参考人数
     */
    @ApiModelProperty(value = "参考人数")
    private Integer signNumber;

    public Integer getMergeType() {
        return mergeType;
    }

    public void setMergeType(Integer mergeType) {
        this.mergeType = mergeType;
    }

    public String getOfficeId() {
        return officeId;
    }

    public void setOfficeId(String officeId) {
        this.officeId = officeId;
    }

    public String getExamNumberTimes() {
        return examNumberTimes;
    }

    public void setExamNumberTimes(String examNumberTimes) {
        this.examNumberTimes = examNumberTimes;
    }



    public LocalDateTime getExamStartDay() {
        return examStartDay;
    }

    public void setExamStartDay(LocalDateTime examStartDay) {
        this.examStartDay = examStartDay;
    }

    public LocalDateTime getExamEndDay() {
        return examEndDay;
    }

    public void setExamEndDay(LocalDateTime examEndDay) {
        this.examEndDay = examEndDay;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setExamNameConfigId(String examNameConfigId) {
        this.examNameConfigId = examNameConfigId;
    }

    public String getExamNameConfigId() {
        return examNameConfigId;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public String getYear() {
        return year;
    }

    public void setCivilServantType(String civilServantType) {
        this.civilServantType = civilServantType;
    }

    public String getCivilServantType() {
        return civilServantType;
    }

    public void setExamType(String examType) {
        this.examType = examType;
    }

    public String getExamType() {
        return examType;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public String getDeptId() {
        return deptId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String origin) {
        this.origin = origin;
    }

    public String getExamCode() {
        return examCode;
    }

    public void setExamCode(String examCode) {
        this.examCode = examCode;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public Long getUseTime() {
        return useTime;
    }

    public void setUseTime(Long useTime) {
        this.useTime = useTime;
    }


    public Integer getBindingStatus() {
        return bindingStatus;
    }

    public void setBindingStatus(Integer bindingStatus) {
        this.bindingStatus = bindingStatus;
    }

    public Integer getExamForm() {
        return examForm;
    }

    public void setExamForm(Integer examForm) {
        this.examForm = examForm;
    }

    public String getRelationId() {
        return relationId;
    }

    public void setRelationId(String relationId) {
        this.relationId = relationId;
    }

    public Integer getSignNumber() {
        return signNumber;
    }

    public void setSignNumber(Integer signNumber) {
        this.signNumber = signNumber;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("examNameConfigId", getExamNameConfigId())
                .append("year", getYear())
                .append("civilServantType", getCivilServantType())
                .append("examType", getExamType())
                .append("examNumberTimes", getExamNumberTimes())
                .append("remarks", getRemarks())
                .append("examStartDay", getExamStartDay())
                .append("examEndDay", getExamEndDay())
                .append("status", getStatus())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateTime", getUpdateTime())
                .append("updateBy", getUpdateBy())
                .append("deptId", getDeptId())
                .append("origin", getOrigin())
                .append("officeId", getOfficeId())
                .append("bindingStatus", getBindingStatus())
                .append("mergeType", getMergeType())
                .toString();
    }
}
